/*
 * Created on 2005/4/3
 *
 */
package cliente.applet;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.rmi.Naming;

import comum.Localizacao;

import servidor.Servidor;
import servidor.ServidorImpl;

/**
 * @author Lin Yu Ching
 *
 */
public class JanelaApp extends Applet {
	
	public final static int APP_W = 240;
	public final static int APP_H = 320;
	
	PanelMapa mapa;
	ServidorImpl servidor = null;
	Localizacao localizacaoFinal = null;
	int tipoRetricao = 0;

	/* (non-Javadoc)
	 * @see java.applet.Applet#init()
	 */
	public void init() {
		try {
			// Alterado por Andre Romero
//		    servidor = (ServidorImpl) Naming.lookup("//" + 
//				 getCodeBase().getHost() + "/Servidor"); 
			servidor = new ServidorImpl();
		} catch (Exception e) { 
		    System.out.println("Applet nao conectou ao servidor: " + e.getMessage()); 
		    e.printStackTrace(); 
		}
		
		if (getParameter("destino") != null && getParameter("restricao") != null) {
			/*
			 * colocar entre <applet> e </applet> do html
			 * <param name="variavel" value="valor_do_variavel">
			 * a funcao getParameter("variavel") vai receber valor como String
			 */
			tipoRetricao = Integer.parseInt(getParameter("restricao"));
			try {
				localizacaoFinal = servidor.pegaLocalizacaoPeloNome(getParameter("destino"));
					if (localizacaoFinal == null) {
						System.out.println("Erro!! Destino desconhecido!!!");
					}
			} catch (Exception e) { 
			    System.out.println("Applet nao conectou ao servidor: " + e.getMessage()); 
			    e.printStackTrace(); 
			}
		} else {
			// qualquer ponto se nao estiver definido --> Right bed 2
			localizacaoFinal = new Localizacao(502, 396, 0);
		}
//		System.out.println("x=" + getParameter("x") + ", y=" + getParameter("y") + 	", andar=" + getParameter("andar"));
		
		mapa = new PanelMapa(this);
		setLayout(new BorderLayout());
		add("Center", mapa);
		add("North", new PanelBarra(this, mapa));
		setVisible(true);
    }

	public String getAppletInfo() {
		return "Visualizador de mapas";
	}
	
	public Servidor getServidor() {
		return servidor;
	}

	public Localizacao getLocalizacaoFinal() {
		return localizacaoFinal;
	}

	public int getTipoRetricao() {
		return tipoRetricao;
	}
	
	public static void main(String[] args) {
		JanelaApp app = new JanelaApp();
		app.init();
	}
}
